let CONSTANT = require('./Constant.js');

let BSCRIPT = require('../Script_Base/Script_Base.js');

/**
 * 获取作者名字
 */
function GetAthorName(win_w, win_h, oldAthorName) {
    var i_getName = "";
    // let AthorName = selector().id("com.ss.android.ugc.aweme:id/user_avatar").find();
    // 
    // let AthorName = selector().id(CONSTANT.ID_Index_Text_UserTitle).find();
    // let fL = selector().text(CONSTANT.Text_Index_Btn_IntoLive).find();
    // console.log(fL);
    if (selector().text("点击进入直播间").boundsInside(win_w/10, win_h/4, win_w/10*9, win_h/4*3).exists()) {
        // console.log("是直播间噢。。。。。");
        //selector.descMatches("@  直播中，按钮");
        /***
         * TODO:这里需要重新弄一下。
         */

        let AthorBtn = selector().descEndsWith("直播中，按钮");
        if (AthorBtn.exists()) {
            let ff = AthorBtn.findOnce();
            // console.log(ff);
            // console.log(ff.text());
            i_getName = ff.text();
        }else{
            console.log("没有找到直播界面的作者名");
        }

    }else {
        let AthorName = selector().id(CONSTANT.ID_Index_Text_UserTitle).find();
        if (AthorName.empty()) {
        }else {
            for (let index = 0; index < AthorName.size(); index++) {
                var tv = AthorName.get(index);
                rect_screen = tv.bounds();
                // console.log(rect_screen.top);
                if (rect_screen.top < win_h/2 || rect_screen.top > win_h) {
                    // console.log("超出了正常值");
                    // console.log(tv.getText());
                }else{
                    // console.log("是正确的");
                    i_getName = tv.getText();
                    if (i_getName != oldAthorName) {
                        break;
                    }
                }
            }
        }    
    }
    console.log("名字：", i_getName);
    return i_getName;
}

function GetAthorName2(win_w, win_h) {

    console.log(win_h);
    let i_getName = "";
    // let AthorName = selector().id(CONSTANT.ID_Index_Text_UserTitle).find();
    let AthorName = selector().id(CONSTANT.ID_Index_Text_UserTitle).find();
    if (AthorName.empty()) {
        
    }else {
        for (let index = 0; index < AthorName.size(); index++) {
            var tv = AthorName.get(index);
            rect_screen = tv.bounds();
            console.log(rect_screen.top);
            if (rect_screen.top < win_h/2 || rect_screen.top > win_h) {
                console.log("超出了正常值");
                console.log(tv.getText());
            }else{
                console.log("是正确的");
                i_getName = tv.getText();
                break;
            }
        }
    }
    return i_getName;
}

/**
 * 获取直播间作者名字
 */
function GetLiveRoomAthorName(win_w, win_h) {
    let i_getName = "";
    let AthorName = selector().id(CONSTANT.ID_LiveRoom_Text_UserName).find();
    if (AthorName.empty()) {
        console.log('没有找到名字呀');
        return i_getName;
    }else {
        for (let index = 0; index < AthorName.size(); index++) {
            var tv = AthorName.get(index);
            rect_screen = tv.bounds();
            if (rect_screen.top < 10 || rect_screen.top > win_h/2) {
                // console.log("超出了正常值");
            }else{
                // console.log("是正确的");
                i_getName = tv.getText();

                break;
            }
        }
    }
    return i_getName;
}


/**
 * 判读在哪个界面
 *  -9: 不是本软件     
    -1: 在4个按钮界面，不在首页
    0：首页，界面
    1：朋友，界面
    2：拍摄，界面
    3：消息，界面
    4：我，界面
    5：直播，界面
    6：直播，已经结束

    1000：这个是首页的标识
    1001：推荐
    1002：关注
    1003：直播

    2000： 这个是个人页面的特征
    2001：个人页面
    2002：个人页面视频界面
    有作品 text=desc=作品+数量，父节点的父节点可以点击


    




    1：在直播面
    2：在我的页面
    3：在输入手机号页面
    5：在我页面
    6：弹出不感兴趣

 * fullId:com.ss.android.ugc.aweme:    

    还要关闭一个禁止按钮
    是否允许“伏羲X”获取此设备的位置信息
    禁止后不再提示，，，点下父节点
    禁止，始终允许
 */
function CheckPage(longTime) {
    // console.log('in check page');
    /**
     * 1、判断在不在抖音软件中
     * 2、判断在不在首页
     * 
     */
    console.log("开始检测在哪个界面");

    if (new Date() - longTime > 1000 * 30) {
        console.log(new Date().Format('hh:mm:ss -> ') + "在查找抖音界面超时了");
        sleep(1000 * 5);
        return -9;
    }
    
    if (BSCRIPT.isInSomeAppById("com.ss.android.ugc.aweme:id/")) {
        // console.log('在抖音界面中');
        let btn_tmp = selector().desc("首页，按钮").boundsInside(50, device.height/2, device.width-10, device.height-10).text("首页");
        if (btn_tmp.exists()) {
            console.log("在主界面4个按钮界面");
            // console.log(btn_tmp.findOnce());
            if (selector().descEndsWith("已选中，推荐，按钮").exists()) {
                console.log("在推荐界面");
                // console.log(selector().descEndsWith("已选中，推荐，按钮").findOnce());
                return 1001;
            } else if (selector().descEndsWith("已选中，关注，按钮").exists()) {
                console.log("在关注界面");
                // console.log(selector().descEndsWith("已选中，关注，按钮").findOnce());
                return 1002;
            } else if (selector().descEndsWith("推荐，按钮").exists()) {
                console.log("在首页");
                return 1000;
            } else {
                console.log("出现了不知明的问题");
                return -1;
            }
        } else if(selector().descEndsWith("，复制名字").exists()){
            console.log("在个人主页");
            return 2001;
        } else if (selector().desc("评论输入框").exists() && selector().desc("at").exists() && selector().desc("表情").exists() && selector().desc("加号").exists()) {
            console.log("在个人主页的视频里");
            return 2002;
        } else if (selector().textStartsWith("说点什么").exists()) {
            console.log("找到了说点什么");
            if (selector().desc("关闭").exists()) {
                return 5;
            }else{
                return -9;
            }
        } else if (selector().descStartsWith("退出清屏").exists()) {
            return 5;
        } else if (selector().descStartsWith("直播已结束").exists()){
            return 6;
        } else {
            console.log("不在首页这边，现在出现了一些问题");
            let node_btn_dd = selector().text('等待').findOnce();
            if (node_btn_dd) {
                // node_btn_dd.click();
                let node_btn_qd = selector().text('确定').findOnce();
                if (node_btn_qd) {
                    BSCRIPT.ClickNodeEx(node_btn_qd);
                    // libEx.slfLog(new Date().Format('hh:mm:ss -> ') + '关闭弹窗 等待');
                    console.log("关闭弹窗 等待");
                }else {
                    // libEx.slfLog(new Date().Format('hh:mm:ss -> ') + '关闭弹窗 等待 error');
                    console.log('关闭弹窗 等待 error');
                }
                
                sleep(1000 * 3);
                return CheckPage(longTime);
            }

            let node_btn_YHZS = selector().text('以后再说').findOnce();
            if (node_btn_YHZS) {
                node_btn_YHZS.click();
                // libEx.slfLog(new Date().Format('hh:mm:ss -> ') + '关闭弹窗 以后再说');
                console.log('关闭弹窗 以后再说');
                sleep(1000 * 3);
                return CheckPage(longTime);
            }

            let node_btn_WZDL = selector().text('我知道了').findOnce();
            if (node_btn_WZDL) {
                node_btn_WZDL.click();
                // libEx.slfLog(new Date().Format('hh:mm:ss -> ') + '关闭弹窗 我知道了');
                console.log('关闭弹窗 我知道了');
                sleep(1000 * 3);
                return CheckPage(longTime);
            }

            let node_btn_QX = selector().text('取消').findOnce();
            if (node_btn_QX) {
                node_btn_QX.click();
                // libEx.slfLog(new Date().Format('hh:mm:ss -> ') + '关闭弹窗 取消按钮');
                console.log('关闭弹窗 取消按钮');
                sleep(1000 * 3);
                return CheckPage(longTime);
            }

            let node_btn_QD = selector().text('确定').findOnce();
            if (node_btn_QD) {
                node_btn_QD.click();
                // libEx.slfLog(new Date().Format('hh:mm:ss -> ') + '关闭弹窗 确定按钮');
                console.log('关闭弹窗 确定按钮');
                sleep(1000 * 3);
                return CheckPage(longTime);
            }

            let node_btn_jz = selector().text('禁止').findOnce();
            if (node_btn_jz) {
                // node_btn_dd.click();
                BSCRIPT.ClickNodeEx(node_btn_jz)
                console.log("关闭弹窗 禁止");
                
                sleep(1000 * 3);
                return CheckPage(longTime);
            }

            back();
            sleep(3 * 1000)
            back();
            // libEx.slfLog(new Date().Format('hh:mm:ss -> ') + '出现不知名的窗口，按下返回键');
            console.log('出现不知名的窗口，按下返回键');
            sleep(3 * 1000)
            return CheckPage(longTime);
        }
    } else {
        // libEx.slfLog(new Date().Format('hh:mm:ss -> ') + '不在抖音界面中');
        console.log(new Date().Format('hh:mm:ss -> ') + '不在抖音界面中');

        let node_btn_dd = selector().text('等待').findOnce();
        if (node_btn_dd) {
            // node_btn_dd.click();
            let node_btn_qd = selector().text('确定').findOnce();
            if (node_btn_qd) {
                BSCRIPT.ClickNodeEx(node_btn_qd);
                // libEx.slfLog(new Date().Format('hh:mm:ss -> ') + '关闭弹窗 等待');
                console.log('关闭弹窗 等待');
            }else {
                // libEx.slfLog(new Date().Format('hh:mm:ss -> ') + '关闭弹窗 等待 error');
                console.log('关闭弹窗 等待 error');
            }
            
            sleep(1000 * 3);
            return CheckPage(longTime);
        }

        let node_btn_jz = selector().text('禁止').findOnce();
        if (node_btn_jz) {
            // node_btn_dd.click();
            BSCRIPT.ClickNodeEx(node_btn_jz)
            console.log("关闭弹窗 禁止");
            
            sleep(1000 * 3);
            return CheckPage(longTime);
        }

        // let node_btn_dengdai = selector().textMatches(/(.*等待.*)/).findOnce();
        // let node_btn_gb = selector().textMatches(/(.*关闭.*)/).findOnce();
        // if (node_btn_dengdai && node_btn_gb) {
        //     node_btn_gb.click();
        //     libEx.slfLog(new Date().Format('hh:mm:ss -> ') + '关闭弹窗 关闭');
        //     sleep(1000 * 3);
        //     return CheckPage(longTime);
        // }


        return -9;
    }
}

module.exports = {
    GetAthorName : GetAthorName,      // 下一个视频
    GetLiveRoomAthorName : GetLiveRoomAthorName,      // 下一个视频

    CheckPage : CheckPage,              // 检测在哪个界面

}